package com.gpframework.module.module.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gpframework.module.brand.domain.BrandStoreUserRela;
import com.gpframework.module.module.domain.BrandStore;
import com.gpframework.module.module.domain.req.BrandStoreReq;
import com.gpframework.module.module.domain.vo.BrandStoreVo;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * @ClassName BrandStore
 * @Author gpframework
 * @Date 2022-03-25
 * @Version 1.0.0
 * @Description 门店Mapper接口
 */
public interface BrandStoreMapper extends BaseMapper<BrandStore> {

    /**
     * 列表
     *
     * @param lqw
     * @return
     */
    List<BrandStoreVo> listVo(@Param("ew") QueryWrapper<BrandStore> lqw);

    /**
     * 对象
     *
     * @param id
     * @return
     */
    BrandStoreVo getVo(@Param("id") Long id);

    /**
     * 根据门店id获取门店
     *
     * @param storeId
     * @return
     */
    BrandStoreVo getStoreVoById(Long storeId);

    /**
     * 查询品牌门店列表
     *
     * @param brandStoreReq
     */
    List<BrandStoreVo> findByBrandId(BrandStoreReq brandStoreReq);


    /**
     * 获取门店列表
     *
     * @param storeId
     * @return
     */
    List<BrandStoreVo> findByStoreId(Long storeId);

    /**
     * 查询门店信息
     *
     * @param brandStoreReq
     * @return
     */
    BrandStoreVo get(BrandStoreReq brandStoreReq);

    /**
     * 获取准备到期门店信息
     *
     * @return
     */
    List<BrandStoreVo> getStoresPreparationExpireList(BrandStoreReq brandStoreReq);

    /**
     * 用户门店列表
     *
     * @param lqw
     * @return
     */
    List<BrandStoreVo> userStoreList(@Param("ew") QueryWrapper<BrandStoreUserRela> lqw);

    /**
     * 查询正在使用的门店列表
     *
     * @return
     */
    List<BrandStoreVo> getStoreList();

    /**
     * 首页卡片金额
     *
     * @param brandStoreReq
     * @return
     */
    List<HashMap<String, Object>> homeCardAmount(BrandStoreReq brandStoreReq);
}
